package com.newtouch.xcd.common.constants;

/**
 * CRM系统字典
 */
public interface CrmDict {

    /**
     * 受益人类型
     * 1=生活保障金 2=医疗保障金 3=教育保障金 4=学业保障金 5= 生育奖励金 6=创业金 7=5k_distribution表里的frequency字段
     * ContactsType
     */
    enum FrequencyType implements BaseEnum {

        F1("1", "生活保障金"),
        F2("2", "医疗保障金"),
        F3("3", "教育保障金"),
        F4("4", "学业保障金"),
        F5("5", "生育奖励金"),
        F6("6", "创业金"),
        F7("7", "其他"),
        ;
        public String code;
        public String message;

        private FrequencyType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 受益人类型
     * ContactsType
     */
    enum BuyFlag implements BaseEnum {

        BUY("买", "买"),
        SELL("卖", "卖"),
        ;
        public String code;
        public String message;

        private BuyFlag(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 受益人类型
     * ContactsType
     */
    enum ContactsType implements BaseEnum {

        C01("1", "A类"),
        C02("2", "B类"),
        C03("3", "C类"),
        C04("4", "其他"),
        ;
        public String code;
        public String message;

        private ContactsType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 支付频率
     */
    enum TxType implements BaseEnum {

        T01("1", "每年"),
        T02("2", "每月"),
        T03("3", "每周"),
        T04("4", "仅一次"),
        T05("5", "每季度"),
        ;
        public String code;
        public String message;

        private TxType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 支付方式
     */
    enum PayStyle implements BaseEnum {

        P01("1", "固定支付"),
        P02("2", "固定支付"),
        P03("3", "清算支付"),
        ;
        public String code;
        public String message;

        private PayStyle(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 客户分类
     */
    enum OriginType implements BaseEnum {

        O01("1", "家族信托客户"),
        O02("2", "基金客户"),
        O03("3", "股东客户"),
        O04("4", "成交客户"),
        ;
        public String code;
        public String message;

        private OriginType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 基金产品类别
     */
    enum FundProductType implements BaseEnum {

        F01("1", "现金管理类"),
        F02("2", "固定收益类"),
        F03("3", "权益类"),
        F04("4", "保险类"),
        F05("5", "其他类"),
        ;
        public String code;
        public String message;

        private FundProductType(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }

    /**
     * 支付金额方式
     */
    enum PaymentAmountMethod implements BaseEnum {

        P01("1", "按固定金额"),
        P02("2", "按固定收益率"),
        P03("3", "按付息支付"),
        ;
        public String code;
        public String message;

        private PaymentAmountMethod(String code, String message) {
            this.code = code;
            this.message = message;
        }

        public String getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }
    }
}
